import serveUrl from "@/config/serverAddress"; // 接口域名列表
import axios from "@/config/http"; // 导入http中创建的axios实例

const systemManagement = {
  GetSystemUserNum() {
    return axios.get(`${serveUrl.cs}/Common/GetSystemUserNum`);
  },

  // * @api{property} 获取该公司下所有部门树
  GetDepartmentTree() {
    return axios.get(`${serveUrl.cs}/Department/GetDepartmentTree`);
  },
  // * @api{property} 获取用户分页数据
  GetUserPageList(params) {
    return axios.get(`${serveUrl.cs}/User/GetUserPageList`, { params });
  },
  // * @api{property} 增删改部门
  DepartmentEdit(params, sqlType) {
    return axios.post(`${serveUrl.cs}/Department/Edit?sqlType=${sqlType}`, params);
  },
  // * @api{property} 删除部门
  DeleteDepartment(params) {
    return axios.post(`${serveUrl.cs}/Department/DeleteDept`, params);
  },
  // * @api{property} 增删改部门员工
  UserEdit(params, sqlType) {
    return axios.post(`${serveUrl.cs}/User/Edit?sqlType=${sqlType}`, params);
  },
  // * @api{property} 删除员工
  DeleteUser(params) {
    return axios.post(`${serveUrl.cs}/User/DeleteUser`, params);
  },
  // * @api{property} 获取所有部门，添加用户时
  GetDepartmentList(params) {
    return axios.get(`${serveUrl.cs}/Department/GetDepartmentList`, { params });
  },
  // * @api{property} 获取该公司下所有角色
  GetRoleList() {
    return axios.get(`${serveUrl.cs}/Role/GetList`);
  },
  //  * @api{property} 修改密码
  GetEditPwd(params) {
    return axios.get(`${serveUrl.cs}/User/EditPwd`, { params });
  },
  //  * @api{property} 获取用户详情
  GetUserInfo(params) {
    return axios.get(`${serveUrl.cs}/User/GetUserInfo`, { params });
  },

  // --------------------------------加密狗------------------------------------
  // * @api{property} 获取加密狗分页数据
  GetDogPageList(params) {
    return axios.get(`${serveUrl.cs}/EncryptionDog/GetDogPageList`, { params });
  },
  // * @api{property} 判断加密狗是否绑定
  dogIsBind(params) {
    return axios.get(`${serveUrl.cs}/EncryptionDog/IsBind`, { params });
  },
  // * @api{property} 增删改狗
  dogEdit(params, sqlType, pwd) {
    return axios.post(`${serveUrl.cs}/EncryptionDog/Edit?sqlType=${sqlType}&pwd=${pwd}`, params);
  },

  //------------角色管理----------------
  //  * @api{property} 获取指定角色下的用户信息
  GetUserDataList(params) {
    return axios.get(`${serveUrl.cs}/Role/GetUserDataList?roleId=${params.roleId}&keyWord=${params.keyWord}`);
  },
  //  * @api{property} 获取指定角色下的用户信息
  CancelCurrentRole(params) {
    return axios.put(`${serveUrl.cs}/Role/CancelCurrentRole?userId=${params.userId}&uId=${params.uId}`);
  },
  //  * @api{property} 获取角色列表 (分页)
  GetPageList(params) {
    return axios.get(`${serveUrl.cs}/Role/PageList`, { params });
  },
  //  * @api{property} 普通职员关联角色
  BindCurrentRole(params) {
    return axios.put(`${serveUrl.cs}/Role/BindCurrentRole?roleId=${params.roleId}`, params.ids);
  },
  //  * @api{property} 角色增删改查
  GetItemEdit(params, sqlType) {
    return axios.post(`${serveUrl.cs}/Role/Edit?sqlType=${sqlType}`, params);
  },
  //  * @api{property} 获取模板权限树
  GetAuthorityTree() {
    return axios.get(`${serveUrl.cs}/Authority/GetAuthorityTree`);
  },
  //  * @api{property} 获取当前角色的权限
  GetRoleAuthorityTree(params) {
    return axios.get(`${serveUrl.cs}/Authority/GetRoleAuthorityTree`, { params });
  },
  //  * @api{property} 获取当前用户详情中角色的权限树(2级)
  GetRoleAuthorityTwoLevelTree(params) {
    return axios.get(`${serveUrl.cs}/Authority/GetRoleAuthorityTwoLevelTree`, { params });
  },
  //  * @api{property} 查询当前整个公司数据的权限树
  GetRoleAuthorityDataTree(params) {
    return axios.get(`${serveUrl.cs}/Authority/GetRoleAuthorityDataTree`, { params });
  },
  // ---------- 操作日志 ---------------
  //  * @api{property} 获取操作日志
  GetOperateLogPageList(params) {
    return axios.get(`${serveUrl.cs}/OperateLog/PageList`, { params });
  },
  //  * @api{property} 获取用户列表
  GetUserList(params) {
    return axios.get(`${serveUrl.cs}/User/GetUserList`, { params });
  },
  //  * @api{property} 获取操作类型
  GetSelectOperationTypeList(params) {
    return axios.get(`${serveUrl.cs}/OperateLog/GetSelectOperationTypeList`, { params });
  },
  // ---------- 企业信息管理 ---------------
  //  * @api{property} 获取单位信息
  GetInfo(params) {
    return axios.get(`${serveUrl.cs}/Company/GetInfo`, { params });
  },
  //  * @api{property} 修改单位信息
  GetInfoEdit(params) {
    return axios.post(`${serveUrl.cs}/Company/Edit`, params);
  },
  //  * @api{property} 获取管理员信息
  GetManagerInfo(params) {
    return axios.get(`${serveUrl.cs}/Company/GetManagerInfo`, { params });
  },
  //  * @api{property} 修改管理员信息
  EditManagerInfo(params) {
    return axios.post(`${serveUrl.cs}/Company/EditManagerInfo`, params);
  },

  // -------------企业组织架构-------------------
  /**
   * 组织架构公司树
   * @param {*} params
   * @returns
   */
  GetStructureSubCompanyTree(params) {
    return axios.get(`${serveUrl.cs}/Authority/GetStructureSubCompanyTree`, { params });
  },

  /**
   * 公司下部门树
   * @param {*} params
   * @returns
   */
  GetStructureDepartmentTree(params) {
    return axios.get(`${serveUrl.cs}/Department/GetStructureDepartmentTree`, { params });
  },

  /**
   * 取子公司下所有部门
   * @param {*} params
   * @returns
   */
  GetPartDeptInfo(params) {
    return axios.get(`${serveUrl.cs}/Common/GetPartDeptInfo`, { params });
  },
};

export default systemManagement;
